The present invention relates to a method for distributing the processing required in servicing a plurality of keyboard/display terminals which are interactively coupled to a host data processor executing a host-based application program. More particularly, the invention relates to a method and apparatus for distributing from a host processor via a data stream, information which conveys not only physical display position information but also the logical parameters by which a keyboard/display terminal is controlled.
In the prior art, host-based applications programs have utilized application programming interface software for communicating with a user via a user input/output device such as a keyboard/display terminal. Early application programming interface software tended to be very "physical," insofar as the interface software defined the precise row and column locations of each item of information to be displayed on a screen. The interface software was frequently prepared as a package associated with a particular application program, tailored to the application program and to a particular user interface device. Very little standardization of user interface was developed, with a result that different application programs, or even different parts of a single application, could have very different user interface software. This lack of standardization necessarily led to user confusion, for it was necessary to not only educate the user concerning the operation of the applications program, but also to educate the user concerning the operation of the user interface. Furthermore, interface software which was perfectly usable with one particular keyboard/display terminal could become unusable if the keyboard/display terminal were replaced with a model of a different type; i.e., a display terminal having a different size screen.
More recently, application programming interface software has tended to become more standardized, leading to "logical" constructs at the application programming interface. This standardization led to the development of user interface rules which defined panel content and size, and definition of fields to be displayed within predefined panel areas. It became easier to develop application programming interface software by following these rules, and the software itself was able to enforce the rules by checking and formatting panel constructs according to the rules either at the time the application was compiled, or at the time display panel information was presented. However, the enforcement of user interface rules does lead to increased loading of the host processor, because the host processor is required to perform rule checking during the execution of applications software. For example, a host processor cannot determine how much data will fit onto a display screen until the display screen size is known, which typically occurs only at the time the applications software is actually executed in a systems environment.
Recent innovations in computer technology have focused on improving and facilitating the user/computer interface, and techniques have been developed for improving the flexibility of information presentation on CRT display screens which form a part of user terminals. The processing power required to support these new techniques has been designed into the host processor, in the form of hardware and software, to reduce the number of functions which the user must perform and to enhance the interaction between the user and the computer system. This processing power has necessarily increased the processing load imposed upon the host processor, which has resulted in increased memory size requirements and increased software, and to some extent has required additional design complexity of hardware circuits for facilitating the processing. All of these tasks have largely been accomplished within state-of-the-art design and development techniques, but have naturally resulted in increases in costs associated with the computer system. For example, the concept of "help text" in a window where the user is allowed to resize the window; resizing requires re-flow of the "help text," which is a significant burden to the host processor.
In a stand-alone computer system the increase in cost resulting from improving and enhancing the servicing of a keyboard/display terminal is easily justifiable, for the incremental cost increase is small as compared with the entire system cost. However, in computer systems designed to accommodate a great many keyboard/display terminals, the increase in cost can become quite appreciable, and can force the manufacturer to forego incorporation of many of the latest techniques into these terminals for that reason.
One important class of computer system utilizes a central host processor which is connected via communication lines to potentially a large number of external workstations, wherein each workstation incorporates a keyboard and display terminal. In order to lower overall system costs, these workstations have traditionally been designed with a minimum of hardware capability, usually containing only sufficient hardware capability to support the data displayed on the screen, and to receive and pass on signals generated by the user at the keyboard. In such systems, which have become known as "dependent workstations" (DWS), the processing required for creating the screen display and for updating the screen display is handled by the host processor, and the DWS processing is limited to receiving a data stream having a limited content--sufficient to define the physical location on the screen of display panel information. The DWS is also capable of detecting a keystroke signal from the keyboard and transferring this signal to the host processor for analysis and processing.
Since very little independent intelligence has been designed into prior art DWS devices, manufacturers have been able to develop fairly large computer systems requiring a great number of DWS devices, controllable by a single host processor, at relatively economical costs. In such systems, the host processor typically executes one or more forms of application programming interface (API) software when a panel is to be displayed, to format the panel, build a data stream that incorporates the data to physically describe the panel display, and transmit the data stream to a workstation control interface. In systems wherein DWS devices are utilized as workstations, the data transmission passes through an intermediary workstation controller (WSC) which is connected to a significant number of DWS devices, and is designed to serve all of the DWS devices to which it is connected. The WSC is the workstation control interface and actually provides the specific screen presentation and limited data entry verification for each DWS device, by building and transmitting a panel description as defined in the data stream received from the host processor, and transferring keyboard keystroke signals from the user to the host processor. It is noteworthy that the display functions handled in the prior art WSC-DWS interconnections are limited to the physical construct of specific display panels as defined by the host processor; the user interface functions permitted in the prior art WSC-DWS interconnection are limited to transferring an encoded signal to the host processor from the keyboard upon recognition of a function key signal (e.g. ENTER).
The prior art techniques for interfacing a host processor with a plurality of DWS devices, via a WSC, cannot handle some of the more recent innovations in advanced user interface constructs, such as selection fields, action bars, windows, and scrollable panel areas; prior art techniques also cannot define "invisible" panel data such as undisplayed scrollable items. Further, prior art techniques cannot support certain enhanced user interface functions, such as cursor movement control, real-time indicators such as selection and scrolling, selections by "mouse" devices, and graphical representation of information by means of icons.
The foregoing and other recent innovations in user interface functions cannot readily be accommodated by the prior art approach to interfacing a host processor with a plurality of DWS devices, because the increased processing load which each DWS device would inherently create would have to be handled by the host processor. This extra loading on the host processor takes away from its processing time required for other functions, and necessarily requires that some sort of priority time sharing scheme be adopted to enable the host processor to perform its normal work processing routines and also to service a plurality of DWS devices. When this approach has been tried, the practical result has been an intolerable delay in the perceived time that a user must wait during any user interaction function. At best, these time delays can amount to several seconds, which is not only annoying from the user's standpoint, but also seriously impedes the user's ability to accomplish his normal work functions.
There is therefore a need for a new technique and method for relieving the host processor from handling certain enhanced user interface constructs, and for relieving the host processor from the control loop relating to certain enhanced user interface functions. The present invention fills this need, by a novel distribution of the processing functions required for servicing user interface functions, including display panel constructs. The present invention reduces the load on the host processor, nor does it require a significant enhancement in the design capabilities of the DWS devices. The present invention enables the DWS devices to utilize a great many of the recent innovations in user interface without perceptively detracting from the speed and efficiency of operation and interaction between the host processor and the user.
In any typical prior art system utilizing a host processor and workstations, wherein the workstations are utilized for user interaction and access and the host processor is utilized for running applications programs, the host processor provides certain fundamental information. For example, the host processor may generate a data stream containing information to be displayed on a workstation screen, and information for controlling the presentation and position of the data on the screen. The data stream generally does not convey any logical intelligence, i.e. information to enable the workstation to independently control and manipulate subsequent screen display panels as a consequence of its interfacing with the user. The control and manipulation of each screen display panel is typically generated by the host processor, by transmitting a new data stream for each panel, wherein each data stream contains new presentation and position information. In the case of a programmable workstation (PWS), the host processor data stream is sent directly to the workstation and is processed internally in the workstation, which itself contains sufficient internal memory and program data to directly control the interaction with the display screen and keyboard. The PWS performs the workstation control interface function. In the case of the DWS, the host processor data stream is sent to a workstation controller (WSC), and the WSC controller provides the internal memory and control for directly controlling the display screen of the DWS. In either case, the host processor-constructed data stream is received by a workstation control interface (hardware and/or software), and the workstation control interface processes the data stream. The workstation control interface may poll the workstation to determine whether a keystroke should be recognized or whether any of a predetermined number of commands have been accepted.
Although a PWS terminal is of considerably more sophisticated design than a DWS terminal, when it is used in an environment where a host processor executes applications programs and merely utilizes the PWS terminal for operator/user interface, the PWS terminal suffers from most of the same limitations as a DWS terminal. For example, each time a display panel is changed on the screen of either type of terminal, the host processor creates the panel description, and presentation, and constructs a data stream for transmission to the terminal. A typical data stream transmission may include 2,000 bytes of information, more or less, and may require a transmission time of at least several seconds, in addition to the processing time required for creating and developing the data stream. In a system involving a considerable number of such terminals, the processing load and transmission time constraints are cumulative, leading to significant reduction in overall system performance. The present invention deals with a method for improving that performance with respect to both PWS terminals and DWS terminals. However, for convenience herein, reference will be made primarily to DWS terminals throughout, it being understood that the uses and advantages of the invention are equally applicable to both types of terminals. Where reference is made herein to workstation controllers (WSC), it should be understood that such controllers are associated with DWS terminals, and PWS terminals do not utilize workstation controllers. PWS terminals communicate directly with the host processor through suitable I/O communications controls, but PWS devices have internal logic which effectively performs performed by workstation controllers.